package gouwuche

import (
	"server/amtf"
)

var A手动挡 *amtf.S组件手动挡

func init() {
	A手动挡 = &amtf.S组件手动挡{}
	// A手动挡.A注册路由 = 注册路由
	// A手动挡.A改之前s7 = 下单s7
}

// func 注册路由(PrivateGroup *gin.RouterGroup, PublicGroup *gin.RouterGroup) {
// 	PublicGroup.POST("dingdan", 下单api)
// }

// func 下单api(c *gin.Context) {
// 	var models = []S购物车model{}
// 	err := c.ShouldBindJSON(&models)
// 	if err != nil {
// 		response.FailWithMessage(err.Error(), c)
// 		return
// 	}

// 	用户id := utils.GetUserID(c)
// 	if 订单id, err := 下单s7(用户id, models); err != nil {
// 		global.GVA_LOG.Error("创建失败!", zap.Error(err))
// 		response.FailWithMessage(err.Error(), c)
// 	} else {
// 		response.OkWithData(gin.H{
// 			"订单id": 订单id,
// 		}, c)
// 	}
// }

// func 下单s7(用户id uint, models []S购物车model) (订单id uint, err error) {
// 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
// 		// 2. 创建订单
// 		订单 := dingdan.S订单model{
// 			A用户id: 用户id,
// 			A状态:   "0",
// 		}
// 		订单.A总价 = 0
// 		// 从购物车设置订单详情
// 		订单.A明细 = make([]dingdanmingxi.S订单明细model, 0)
// 		var 拟删除ids []uint
// 		for i := range models {
// 			model := &models[i]
// 			// 判断当前库存是否充足
// 			// if model.Asku != nil {
// 			if model.Asku.A库存 < model.A数量 {
// 				return errors.New("库存不足")
// 			}
// 			// }

// 			订单.A明细 = append(订单.A明细, dingdanmingxi.S订单明细model{
// 				S商品modelID:  model.S商品modelID,
// 				SskumodelID: model.SskumodelID,
// 				A数量:         model.A数量,
// 				A价格:         model.Asku.A价格,
// 			})
// 			订单.A总价 += model.A数量 * model.Asku.A价格

// 			// 扣减库存 增加销量
// 			if err = tx.Model(&sku.Sskumodel{}).Where("id = ?", model.SskumodelID).
// 				Update("库存", gorm.Expr("库存 - ?", model.A数量)).
// 				Update("销量", gorm.Expr("销量 + ?", model.A数量)).Error; err != nil {
// 				return err
// 			}

// 			if err = tx.Model(&shangpin.S商品model{}).Where("id = ?", model.S商品modelID).
// 				Update("库存", gorm.Expr("库存 - ?", model.A数量)).
// 				Update("销量", gorm.Expr("销量 + ?", model.A数量)).Error; err != nil {
// 				return err
// 			}

// 			拟删除ids = append(拟删除ids, model.ID)
// 		}

// 		if addr, err := dizhi.A查默认s7(订单.A用户id); err != nil {
// 			return err
// 		} else {
// 			订单.A收件姓名 = addr.A收件姓名
// 			订单.A收件电话 = addr.A收件电话
// 			订单.A收件省市县 = addr.A收件省市县
// 			订单.A收件详细地址 = addr.A收件详细地址
// 		}

// 		closeTime := time.Now().Add(time.Minute * 15)
// 		订单.A关闭时间 = &closeTime

// 		// 3. 创建订单详情
// 		err = tx.Create(&订单).Error
// 		if err != nil {
// 			return err
// 		}

// 		// 4. 删除购物车中的商品
// 		// err = tx.Where("user_id = ?", 用户id).Delete(&S购物车model{}).Error
// 		err := tx.Where("id IN ?", 拟删除ids).Delete(&S购物车model{}).Error
// 		if err != nil {
// 			return err
// 		}
// 		订单id = 订单.ID
// 		return nil
// 	})
// 	return
// }
